#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define M 100
//int  main()
//{
//	printf("%s\n", __FILE__);
//	printf("%d\n", __LINE__);
//	printf("%s\n", __DATE__);
//	printf("%s\n", __TIME__);
//	return 0;
//}

//int main()
//{
//	int b = M;
//	b*= M;
//	printf("%d", b);
//	return 0;
//}

//#define SQUARE(x) (x)*(x)
////int main()
////{
////	int b = 5;
////	printf("%d\n", SQUARE(b+1));
////	return 0;
////}
//
//#define ADD(x) ((x)+(x))
//int main()
//{
//	int b = 5;
//	printf("%d\n", 10*ADD(b+1));
//	return 0;
//}

//#define MALLOC(num,type) (type*)malloc(num*sizeof(type))
//
//int main()
//{
//	int * p= MALLOC(10, int);
//	return 0;
//}


//#define PRINT(n) printf("the value of " #n " is %d" "\n",n)
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int c = 30;
//	PRINT(a);
//	PRINT(b);
//	PRINT(c);
//	return 0;
//}

//#define GENERIC_MAX(type) \
//	type type##_max(type x,type y)\
//{\
//	return (x > y ? x : y);\
//}
//
//GENERIC_MAX(int)
//GENERIC_MAX(float)
//
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int tmp = int_max(2, 3);
//	printf("%d\n", tmp);
//	float m = float_max(3.5f, 10.5f);
//	printf("%.2f\n", m);
//	return 0;
//}

//#define M 10
//
//int main()
//{
//	printf("%d\n", M);
//#undef M
//	int M = 20;
//	printf("%d\n", M);
//	return 0;
//}

//#define __DEBUG__
//
//int main()
//{
//	int arr[20];
//	for (int j = 1; j <=10 ; j++)
//	{
//		arr[j] = j;
//	}
//	for (int i = 1; i <= 10; i++)
//	{
//#ifdef __DEBUG__
//		printf("%d ", arr[i]);
//#endif
//	}
//	return 0;
//}

//#define DEBUG 0
//int main()
//{
//#if DEBUG
//	printf("haha\n");
//#endif // DEBUG
//
//	return 0;
//}
//
////#define DEBUG
//int main()
//{
//#ifdef DEBUG
//	printf("hello\n");
//#endif // DEBUG
//
//
//	return 0;
//}

//#define DEBUG 2
//
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int c = 30;
//#if DEBUG==1
//	printf("%d\n",a);
//#elif DEBUG==2
//	printf("%d\n", b);
//#else
//	printf("%d\n", c);
//#endif // DEBUG
//	return 0;
//}